From ca899c5e1e93fa4cb6d717979ecff288679ffc8a Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Wed, 14 Sep 2005 17:06:25 +0000 Subject: [PATCH] Rename xm commands and cleanup of the "bogus" argument code. For the "bogus" argument code, avoid changing the argument list so that errors can be reported consistently. Signed-off-by: Dan Smith Signed-off-by: Christian Limpach --- docs/misc/sedf_scheduler_mini-HOWTO.txt | 24 +++--- tools/python/xen/xm/main.py | 99 +++++++++++++------------ 2 files changed, 64 insertions(+), 59 deletions(-) diff --git a/docs/misc/sedf_scheduler_mini-HOWTO.txt b/docs/misc/sedf_scheduler_mini-HOWTO.txt index ad3cc62e1f..52e5b6ead3 100644 --- a/docs/misc/sedf_scheduler_mini-HOWTO.txt +++ b/docs/misc/sedf_scheduler_mini-HOWTO.txt @@ -10,7 +10,7 @@ Overview: Usage:    -add "sched=sedf" on Xen's boot command-line    -create domains as usual -   -use "xm sedf " +   -use "xm sched-sedf "   Where:   -period/slice are the normal EDF scheduling parameters in nanosecs   -latency-hint is the scaled period in case the domain is doing heavy I/O @@ -22,23 +22,23 @@ Usage: Examples:  normal EDF (20ms/5ms): -  xm sedf 20000000 5000000 0 0 0 +  xm sched-sedf 20000000 5000000 0 0 0  best-effort domains (i.e. non-realtime): -  xm sedf 20000000 0 0 1 0 +  xm sched-sedf 20000000 0 0 1 0   normal EDF (20ms/5ms) + share of extra-time: -  xm sedf 20000000 5000000 0 1 0 +  xm sched-sedf 20000000 5000000 0 1 0  4 domains with weights 2:3:4:2 -  xm sedf 0 0 0 0 2 -  xm sedf 0 0 0 0 3 -  xm sedf 0 0 0 0 4 -  xm sedf 0 0 0 0 2 +  xm sched-sedf 0 0 0 0 2 +  xm sched-sedf 0 0 0 0 3 +  xm sched-sedf 0 0 0 0 4 +  xm sched-sedf 0 0 0 0 2  1 fully-specified (10ms/3ms) domain, 3 other domains share  available rest in 2:7:3 ratio: -  xm sedf 10000000 3000000 0 0 0 -  xm sedf 0 0 0 0 2 -  xm sedf 0 0 0 0 7 -  xm sedf 0 0 0 0 3 \ No newline at end of file +  xm sched-sedf 10000000 3000000 0 0 0 +  xm sched-sedf 0 0 0 0 2 +  xm sched-sedf 0 0 0 0 7 +  xm sched-sedf 0 0 0 0 3 diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index 4db538f8dc..cae59fedfe 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -64,7 +64,6 @@ xm full list of subcommands: Domain Commands: console attach to console of DomId cpus-list get the list of cpus for a VCPU - cpus-set set which cpus a VCPU can use. create create a domain destroy terminate a domain immediately domid convert a domain name to a domain id @@ -83,6 +82,7 @@ xm full list of subcommands: vcpu-enable disable VCPU in a domain vcpu-disable enable VCPU in a domain vcpu-list get the list of VCPUs for a domain + vcpu-pin set which cpus a VCPU can use. Xen Host Commands: dmesg [--clear] read or clear Xen's message buffer @@ -91,14 +91,15 @@ xm full list of subcommands: top monitor system and domains in real-time Scheduler Commands: - bvt set BVT scheduler parameters - bvt_ctxallow set the BVT scheduler context switch allowance - sedf set simple EDF parameters + sched-bvt set BVT scheduler parameters + sched-bvt-ctxallow + Set the BVT scheduler context switch allowance + sched-sedf set simple EDF parameters Virtual Device Commands: - block-create [BackDomId] + block-attach [BackDomId] Create a new virtual block device - block-destroy Destroy a domain's virtual block device + block-detach Destroy a domain's virtual block device block-list List virtual block devices for a domain block-refresh Refresh a virtual block device for a domain network-limit @@ -172,8 +173,7 @@ def xm_create(args): from xen.xm import create # ugly hack because the opt parser apparently wants # the subcommand name just to throw it away! - args.insert(0,"bogus") - create.main(args) + create.main(["bogus"] + args) def xm_save(args): arg_check(args,2,"save") @@ -201,8 +201,7 @@ def xm_migrate(args): from xen.xm import migrate # ugly hack because the opt parser apparently wants # the subcommand name just to throw it away! - args.insert(0,"bogus") - migrate.main(args) + migrate.main(["bogus"] + args) def xm_list(args): use_long = 0 @@ -289,8 +288,7 @@ def xm_show_vcpus(domsinfo): vcpuinfo) def xm_vcpu_list(args): - args.insert(0,"-v") - xm_list(args) + xm_list(["-v"] + args) def xm_destroy(args): arg_check(args,1,"destroy") @@ -298,33 +296,28 @@ def xm_destroy(args): from xen.xm import destroy # ugly hack because the opt parser apparently wants # the subcommand name just to throw it away! - args.insert(0,"bogus") - destroy.main(args) + destroy.main(["bogus"] + args) def xm_reboot(args): arg_check(args,1,"reboot") + from xen.xm import shutdown # ugly hack because the opt parser apparently wants # the subcommand name just to throw it away! - args.insert(0,"bogus") - args.insert(2,"-R") - from xen.xm import shutdown - shutdown.main(args) + shutdown.main(["bogus", "-R"] + args) def xm_shutdown(args): arg_check(args,1,"shutdown") + from xen.xm import shutdown # ugly hack because the opt parser apparently wants # the subcommand name just to throw it away! - args.insert(0,"bogus") - from xen.xm import shutdown - shutdown.main(args) + shutdown.main(["bogus"] + args) def xm_sysrq(args): from xen.xm import sysrq # ugly hack because the opt parser apparently wants # the subcommand name just to throw it away! - args.insert(0,"bogus") - sysrq.main(args) + sysrq.main(["bogus"] + args) def xm_pause(args): arg_check(args, 1, "pause") @@ -358,8 +351,8 @@ def cpu_make_map(cpulist): return cpumap -def xm_cpus_set(args): - arg_check(args, 3, "cpus-set") +def xm_vcpu_pin(args): + arg_check(args, 3, "vcpu-pin") dom = args[0] vcpu = int(args[1]) @@ -423,22 +416,22 @@ def xm_domname(args): dom = server.xend_domain(name) print sxp.child_value(dom, 'name') -def xm_bvt(args): - arg_check(args, 6, "bvt") +def xm_sched_bvt(args): + arg_check(args, 6, "sched-bvt") dom = args[0] v = map(long, args[1:6]) from xen.xend.XendClient import server server.xend_domain_cpu_bvt_set(dom, *v) -def xm_bvt_ctxallow(args): - arg_check(args, 1, "bvt_ctxallow") +def xm_sched_bvt_ctxallow(args): + arg_check(args, 1, "sched-bvt-ctxallow") slice = int(args[0]) from xen.xend.XendClient import server server.xend_node_cpu_bvt_slice_set(slice) -def xm_sedf(args): - arg_check(args, 6, "sedf") +def xm_sched_sedf(args): + arg_check(args, 6, "sched-sedf") dom = args[0] v = map(int, args[1:6]) @@ -482,10 +475,11 @@ its contents if the [-c|--clear] flag is specified. fn=set_true, default=0, use="Clear the contents of the Xen message buffer.") # Work around for gopts - args.insert(0,"bogus") - gopts.parse(args) - if not (1 <= len(args) <= 2): - err('Invalid arguments: ' + str(args)) + myargs = args + myargs.insert(0, "bogus") + gopts.parse(myargs) + if not (1 <= len(myargs) <= 2): + err('Invalid arguments: ' + str(myargs)) from xen.xend.XendClient import server if not gopts.vals.clear: @@ -512,6 +506,14 @@ def xm_network_list(args): sxp.show(x) print +def xm_network_attach(args): + + print "Not implemented" + +def xm_network_detach(args): + + print "Not implemented" + def xm_block_list(args): arg_check(args,1,"block-list") dom = args[0] @@ -520,11 +522,14 @@ def xm_block_list(args): sxp.show(x) print -def xm_block_create(args): +def xm_block_attach(args): n = len(args) + if n == 0: + usage("block-attach") + if n < 4 or n > 5: err("%s: Invalid argument(s)" % args[0]) - usage("block-create") + usage("block-attach") dom = args[0] vbd = ['vbd', @@ -546,8 +551,8 @@ def xm_block_refresh(args): from xen.xend.XendClient import server server.xend_domain_device_refresh(dom, 'vbd', dev) -def xm_block_destroy(args): - arg_check(args,2,"block-destroy") +def xm_block_detach(args): + arg_check(args,2,"block-detach") dom = args[0] dev = args[1] @@ -615,7 +620,7 @@ commands = { "mem-max": xm_mem_max, "mem-set": xm_mem_set, # cpu commands - "cpus-set": xm_cpus_set, + "vcpu-pin": xm_vcpu_pin, # "cpus-list": xm_cpus_list, "vcpu-enable": xm_vcpu_enable, "vcpu-disable": xm_vcpu_disable, @@ -631,17 +636,19 @@ commands = { "info": xm_info, "log": xm_log, # scheduler - "bvt": xm_bvt, - "bvt_ctxallow": xm_bvt_ctxallow, - "sedf": xm_sedf, + "sched-bvt": xm_sched_bvt, + "sched-bvt-ctxallow": xm_sched_bvt_ctxallow, + "sched-sedf": xm_sched_sedf, # block - "block-create": xm_block_create, - "block-destroy": xm_block_destroy, + "block-attach": xm_block_attach, + "block-detach": xm_block_detach, "block-list": xm_block_list, "block-refresh": xm_block_refresh, # network "network-limit": xm_network_limit, "network-list": xm_network_list, + "network-attach": xm_network_attach, + "network-detach": xm_network_detach, # vnet "vnet-list": xm_vnet_list, "vnet-create": xm_vnet_create, @@ -719,8 +726,6 @@ def main(argv=sys.argv): sys.exit(1) except XendError, ex: if len(args) > 0: - if args[0] == "bogus": - args.remove("bogus") handle_xend_error(argv[1], args[0], ex) else: print "Unexpected error:", sys.exc_info()[0] -- 2.30.2